<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--
  1. 当通过methods中定义方法，以供@click调用时，需要注意参数问题
  情况一：如果该方法不需要额外参数，那么方法后的()可以不添加，click事件中可以不添加，{{}}中必须添加的
  情况二：如果需要同时传入某个参数，同时需要event时，可以通过$event传入事件
-->
<div id="app">
  <!--情况一：事件调用的方法没有参数,()可以省略也可以不省略-->
  <button @click="btn1Click">按钮1</button> <!--btn1Click-->
  <button @click="btn1Click()">按钮1</button> <!--btn1Click-->
  
  <!--情况二：在事件定义时，写函数时省略了小括号，但方法本身是需要一个参数的,这个时候，vue会默认将浏览器生成 的
             event事件对象作为参数传入到方法中-->
  <button @click="btn2Click(123)">按钮二</button> <!-- --- abc -->
  <button @click="btn2Click()">按钮二</button> <!--函数需要参数，但是没有传入，那么函数形参为  undefined-->
  <button @click="btn2Click">按钮二</button> <!--   MouseEvent{}  -->
  
  <!--情况三：方法定义时，我们需要event对象，同时又需要其他参数-->
  <!--在调用方法时，通过$event 来获取到浏览器参数的event对象-->
  <button @click="btn3Click(123,$event)">按钮三</button> <!--  123 MouseEvent{}  -->
</div>

<script src="../js/vue.js"></script>
<script>
  const app=new Vue({
    el: '#app',
    data: {
      message: '你好'
    },
    methods:{
      btn1Click(){
        console.log("btn1Click");
      },
      btn2Click(abc){
        console.log("---",abc);
      },
      btn3Click(abc,event){
        console.log(abc,event);
      }
    }
  })

</script>
</body>
</html>